//***********************************************************************
//	File:		DisRupTor.h
//	Author:		
//	Course:		SGP 1405
//	Purpose:	
//***********************************************************************
//***********************************************************************
//	Purposfully left blank for all comments regarding this file 
//	
//	
//	
//***********************************************************************



#pragma once
#include "Enemy.h"
class DisRupTor :
	public Enemy
{
public:
	//Trilogy
	DisRupTor(float posX = -1, float posY = -1);
	~DisRupTor();
	DisRupTor(const DisRupTor&) = default; 
	DisRupTor& operator = (const DisRupTor&) = default; 

	//Type
	int GetType() const { return ENT_DISRUPTOR; }

	//Interface
	void Update(float dt);
	void Render();
	void HandleCollision(const IEntity* pOther);
	void HandleEvent();
	SGD::Rectangle GetRect() const;
	void ModifyHealth(float hpAmount);
	void ApplyFriction(float dt);

	//Enemy Interface
	void Attack(float dt);
	void Move(void);

	//Disruptor specific
	void Disrupt(); 

	//Accessors 
	float GetJamRadius				(void)			{ return m_fJamRadius; }
	float GetAttackCDL				(void)			{ return m_fAttackCDL; }
	int	  GetProjectileType			(void)			{ return m_nProjectileType; }
	//Mutators
	void SetJamRadius				(float jr)		{ m_fJamRadius = jr; }
	void SetAttackCDL				(float aCDL)	{ m_fAttackCDL = aCDL; }
	void SetProjectileType			(int pt)		{ m_nProjectileType = pt; }
private:
	float m_fJamRadius = 0.0f;
	float m_fAttackCDL = 0.0f;
	int   m_nProjectileType = 0; 
};

